package com.ruoyi.assets.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 固定资产对象 asset_basic
 * 
 * @author 孙帆科
 * @date 2025-03-04
 */
public class AssetBasic extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    @Excel(name = "序号")
    private Long basicId;

    /** 资产类别 */
    @Excel(name = "资产类别")
    private Long assetType;

    /** 资产编号 */
    @Excel(name = "资产编号")
    private String assetNumber;

    /** 资产名称 */
    @Excel(name = "资产名称")
    private String assetName;

    /** 录入期间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "录入期间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date entryPeriod;

    /** 增加类型 */
    private Long additionType;

    /** 开始使用日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始使用日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startUsageDate;

    /** 使用人 */
    @Excel(name = "使用人")
    private String userName;

    /** 使用部门 */
    @Excel(name = "使用部门")
    private String usageDepartment;

    /** 使用状况 */
    @Excel(name = "使用状况")
    private String basicStatus;

    /** 规格型号 */
    @Excel(name = "规格型号")
    private String specificationModel;

    /** 关联id*/
    private Long methodId;

    /** 财务id*/
    private Long financialId;

    /** 供应商 */
    private String supplier;

    /** 复制张数 */
    private Long copyNumber;

    /** 资产原值 */
    private Double originalValue;

    /** 税额 */
    private Double taxAmount;

    /** 残值率 */
    private Double salvageRate;

    /** 预计残值 */
    private Double estimatedSalvageValue;

    /** 减值准备 */
    private Double impairmentProvision;

    /** 预计使用期间 */
    private Long expectedUsagePeriod;

    /** 已折旧期间 */
    private Long depreciatedPeriod;

    /** 剩余使用期间 */
    private Long remainingUsagePeriod;

    /** 期初累计折旧 */
    private Double beginningAccumulatedDepreciation;

    /** 每月折旧额，数值类型 */
    private Double monthlyDepreciation;

    /** 期初净值，数值类型 */
    private Double beginningNetValue;

    /** 清理期间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "清理期间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date clearancePeriod;

    public void setBasicId(Long basicId) 
    {
        this.basicId = basicId;
    }

    public Long getBasicId() 
    {
        return basicId;
    }
    public void setAssetNumber(String assetNumber) 
    {
        this.assetNumber = assetNumber;
    }

    public String getAssetNumber() 
    {
        return assetNumber;
    }
    public void setAssetName(String assetName) 
    {
        this.assetName = assetName;
    }

    public String getAssetName() 
    {
        return assetName;
    }
    public void setEntryPeriod(Date entryPeriod) 
    {
        this.entryPeriod = entryPeriod;
    }

    public Date getEntryPeriod() 
    {
        return entryPeriod;
    }

    public Long getAdditionType() {
        return additionType;
    }

    public void setAdditionType(Long additionType) {
        this.additionType = additionType;
    }

    public void setStartUsageDate(Date startUsageDate)
    {
        this.startUsageDate = startUsageDate;
    }

    public Date getStartUsageDate() 
    {
        return startUsageDate;
    }
    public void setUserName(String userName) 
    {
        this.userName = userName;
    }

    public Long getAssetType() {
        return assetType;
    }

    public void setAssetType(Long assetType) {
        this.assetType = assetType;
    }

    public Long getMethodId() {
        return methodId;
    }

    public void setMethodId(Long methodId) {
        this.methodId = methodId;
    }

    public Long getFinancialId() {
        return financialId;
    }

    public void setFinancialId(Long financialId) {
        this.financialId = financialId;
    }

    public String getUserName()
    {
        return userName;
    }
    public void setUsageDepartment(String usageDepartment) 
    {
        this.usageDepartment = usageDepartment;
    }

    public String getUsageDepartment() 
    {
        return usageDepartment;
    }
    public void setBasicStatus(String basicStatus) 
    {
        this.basicStatus = basicStatus;
    }

    public String getBasicStatus() 
    {
        return basicStatus;
    }
    public void setSpecificationModel(String specificationModel) 
    {
        this.specificationModel = specificationModel;
    }

    public String getSpecificationModel() 
    {
        return specificationModel;
    }
    public void setSupplier(String supplier) 
    {
        this.supplier = supplier;
    }

    public Double getOriginalValue() {
        return originalValue;
    }

    public void setOriginalValue(Double originalValue) {
        this.originalValue = originalValue;
    }

    public Double getTaxAmount() {
        return taxAmount;
    }

    public void setTaxAmount(Double taxAmount) {
        this.taxAmount = taxAmount;
    }

    public Double getSalvageRate() {
        return salvageRate;
    }

    public void setSalvageRate(Double salvageRate) {
        this.salvageRate = salvageRate;
    }

    public Double getEstimatedSalvageValue() {
        return estimatedSalvageValue;
    }

    public void setEstimatedSalvageValue(Double estimatedSalvageValue) {
        this.estimatedSalvageValue = estimatedSalvageValue;
    }

    public Double getImpairmentProvision() {
        return impairmentProvision;
    }

    public void setImpairmentProvision(Double impairmentProvision) {
        this.impairmentProvision = impairmentProvision;
    }

    public Long getExpectedUsagePeriod() {
        return expectedUsagePeriod;
    }

    public void setExpectedUsagePeriod(Long expectedUsagePeriod) {
        this.expectedUsagePeriod = expectedUsagePeriod;
    }

    public Long getDepreciatedPeriod() {
        return depreciatedPeriod;
    }

    public void setDepreciatedPeriod(Long depreciatedPeriod) {
        this.depreciatedPeriod = depreciatedPeriod;
    }

    public Long getRemainingUsagePeriod() {
        return remainingUsagePeriod;
    }

    public void setRemainingUsagePeriod(Long remainingUsagePeriod) {
        this.remainingUsagePeriod = remainingUsagePeriod;
    }

    public Double getBeginningAccumulatedDepreciation() {
        return beginningAccumulatedDepreciation;
    }

    public void setBeginningAccumulatedDepreciation(Double beginningAccumulatedDepreciation) {
        this.beginningAccumulatedDepreciation = beginningAccumulatedDepreciation;
    }

    public Double getMonthlyDepreciation() {
        return monthlyDepreciation;
    }

    public void setMonthlyDepreciation(Double monthlyDepreciation) {
        this.monthlyDepreciation = monthlyDepreciation;
    }

    public Double getBeginningNetValue() {
        return beginningNetValue;
    }

    public void setBeginningNetValue(Double beginningNetValue) {
        this.beginningNetValue = beginningNetValue;
    }

    public String getSupplier()
    {
        return supplier;
    }
    public void setCopyNumber(Long copyNumber) 
    {
        this.copyNumber = copyNumber;
    }

    public Long getCopyNumber() 
    {
        return copyNumber;
    }
    public void setClearancePeriod(Date clearancePeriod) 
    {
        this.clearancePeriod = clearancePeriod;
    }

    public Date getClearancePeriod() 
    {
        return clearancePeriod;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("basicId", getBasicId())
            .append("assetType", getAssetType())
            .append("assetNumber", getAssetNumber())
            .append("assetName", getAssetName())
            .append("entryPeriod", getEntryPeriod())
            .append("additionType", getAdditionType())
            .append("startUsageDate", getStartUsageDate())
            .append("userName", getUserName())
            .append("usageDepartment", getUsageDepartment())
            .append("basicStatus", getBasicStatus())
            .append("specificationModel", getSpecificationModel())
            .append("supplier", getSupplier())
            .append("copyNumber", getCopyNumber())
            .append("clearancePeriod", getClearancePeriod())
            .append("methodId", getMethodId())
            .append("financialId", getFinancialId())
            .toString();
    }
}
